<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>demo</title>
    <script src="经典项目回归.js"></script>
    <style>
        #box {
            width: 0;
            height: 0;
            border: 100px solid transparent;
            border-left: 100px solid red;
        }
    </style>
</head>

<body>
    <div id="box"></div>
    <script>
        // new Promise((resolve, reject) => {
        //     setTimeout(() => {
        //         // resolve("1")
        //         console.log("timeout")
        //         reject("error") // 次代码将不会执行，违背了单一状态不可逆的原则
        //     }, 2000)
        // })
        // .catch(err => {
        //     console.log(err)
        // })
        //     .then((res, err) => {
        //         console.log("---1---", res)

        //         return new Promise((resolve, reject) => {
        //             resolve("2")
        //         })
        //     })
        //     .then((res, err) => {
        //         console.log("---2---", res)
        //     })



        // new Promise((resolve, reject) => {
        //     console.log('初始化');

        //     resolve();
        // })
        //     .then(() => {
        //         throw new Error('有哪里不对了');

        //         console.log('执行「这个」”');
        //     })
        //     .catch(() => {
        //         console.log('执行「那个」');
        //     })
        //     .then(() => {
        //         console.log('执行「这个」，无论前面发生了什么');
        //     });

        // 
        // f = function() { return true }
        // g = function() { return false }
        // ~function() {
        //     if (g() && [] == ![]) {
        //         f = function() { return false }
        //         function g() { return true }
        //     }
        // }()
        // console.log(f())
        // console.log(g())

        // console.log(a)  // Uncaught ReferenceError: a is not defined
        // console.log(typeof a)  // undefined
        // let a // Uncaught ReferenceError: Cannot access 'a' before initialization


        let obj = {
            name: 'test'
        }
        // obj 被oop所占用，需要手动释放
        let oop = obj
        opp = null
        obj = null
    </script>
</body>

</html>
<script>

</script>